package com.oig.sys.msg.controller;


import com.oig.common.validator.GroupAdd;
import com.oig.common.validator.GroupEdit;
import com.oig.sys.log.annotation.SysLog;
import com.oig.sys.msg.dto.ExportTaskDto;
import com.oig.sys.msg.service.ITbExportTaskService;
import com.oig.sys.msg.vo.ExportTaskVo;
import io.swagger.v3.oas.annotations.Hidden;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 文件导出任务
 */
@Hidden
@RestController
@RequestMapping("/exportTask")
@Slf4j
@RequiredArgsConstructor
public class TbExportTaskController {

    private final ITbExportTaskService exportTaskService;


    @Hidden
    @SysLog(value="添加下载任务",apiUrl="/exportTask/add")
    @PostMapping("/add")
    public ExportTaskVo addExportTask(@RequestBody @Validated(GroupAdd.class) ExportTaskDto exportTaskDto){
        log.info(" addExportTask : {}",exportTaskDto);
        return this.exportTaskService.addExportTask(exportTaskDto);
    }

    @Hidden
    @SysLog(value="下载任务完成更新并通知",apiUrl="/exportTask/updateAndNotify")
    @PostMapping("/updateAndNotify")
    public ExportTaskVo updateTaskAndNotify(@RequestBody @Validated(GroupEdit.class) ExportTaskDto exportTaskDto){
        log.info(" updateTaskAndNotify : {}",exportTaskDto);
        return this.exportTaskService.updateTaskAndNotify(exportTaskDto);
    }


}
